\documentclass[a4paper,10pt]{article}

\usepackage{ucs}
\usepackage[utf8x]{inputenc}
\usepackage[brazil]{babel}

\usepackage{graphicx}
\usepackage[margin=2.5cm]{geometry}
\renewcommand{\baselinestretch}{2}   %espaçamento 1.5 entre linhas

\title{Ep1 - Protótipo}

\begin{document}

%%%%%%%%%%%%%%%%%%%%%%% Folha de Rosto (INICIO) %%%%%%%%%%%%%%%%%%%%%%%%%
\newpage
\thispagestyle{empty}
\begin{center}
  \vspace*{0.1cm}
  \textbf{\textsc{UNIVERSIDADE DE SÃO PAULO}}\\
  \vspace*{0,4cm}
  \textsc{INSTITUTO DE MATEMÁTICA E ESTATÍSTICA}\\
\end{center}
\vspace*{1cm}
{\renewcommand{\baselinestretch}{1.2}
  \normalsize
     \vspace{3cm}
  \begin{center}
    \begin{huge}  MAC-0211: Relatório Final\\ \end{huge}
   \vspace{2cm}
    \begin{LARGE} Naufragos \\ \end{LARGE}
   \vspace{2cm}
    \begin{large} Relatorio Parcial\\ \end{large}
    \vspace{5cm}
\begin{flushright}
    {\bf Integrantes do Grupo:}\\
    {Bruno Ferrero} \hspace{0.5cm} {N USP: 3690142}\\
    {Mariana Pacheco Hatamura} \hspace{0.5cm} {N USP: 4906967}\\
    {Tiago Bomventi} \hspace{0.5cm} {N USP: 3690177}\\


{\bf Professor:}\hspace{0.3cm} {Fabio Kon}\\
\end{flushright}

  \end{center}
  \vspace{1cm}

}
\begin{center}
  {\small S Ã O \ \ P A U L O}\\
  \large 10/06/2010
\end{center}
%%%%%%%%%%%%%%%%%%%%%%% Folha de Rosto (FIM) %%%%%%%%%%%%%%%%%%%%%%%%%

\newpage
%\setcounter{page}{1}   %numeracao de paginas comeca aqui
%\tableofcontents

\newpage

\section{Introdução}

\subsection{A história}
Estamos nos primeiros anos do século XX. O imponente transatlântico RMS Positronic deixa a Europa rumo ao Novo Mundo. Tudo corria bem em sua viagem, até que o navio esbarrou em um iceberg (sim, clichê básico de tragédias marítimas). Todavia, para a felicidade dos passageiros, o navio seguia rigorosamente os protocolos de segurança e havia coletes salva-vidas para todos. Outra sorte é que era verão na época do naufrágio, dessa forma tampouco as vítimas tiveram problemas com hipotermia.

Felizmente para os passageiros, quis o destino que próximo ao naufrágio passasse o modesto navio cargueiro Asimov. O cargueiro, que contava com dois botes, prontamente colocou-os para o resgate dos passageiros em alto-mar. 

O objetivo do jogo, é recolher o maior número possivel de naufragos com os botes de resgate do navio cargueiro Asimov.

\subsection{Os elementos do jogo}

Os elementos encontrados no jogo são basicamente de tipos: os corais, os botes, os naufragos e o navio cargueiro Asimov.



\begin{figure}[h]
    \centering
    \includegraphics[width=7cm]{/home/tiago/disciplinas/lab_prog2/figuras/fig1.eps}
    \vspace{-0.2cm}
    \caption[Jogo original]{Movimentação da bolinha dentro da tag.}
    \label{minilab}
  \end{figure}


\section{Manual do Usuário}
\subsection{Teclas do jogo}


\subsection{Instruções do compilação}
\begin{verbatim}
Instruções de compilação:

Para gerar o executável do jogo digite:

make jogo

e depois para jogar

./jogo [par1] [par2] [par3]

O comando aceita nenhum, 1, 2, ou 3 parâmetros de entrada, são eles:
par1 = frequencia de criação de naufragos
par2 = velocidade média dos naufragos criados
par3 = semente para o random

A configuração default do jogo

par1 = 0.5
par2 = 2
par3 = time(NULL)

OBS: 1- verificar se o makefile aponta para a localização correta da biblioteca ALlegro na sua máquina. Isso pode ser alterado, atraves da variavel LIBALLEG no makefile.
\end{verbatim}

\section{Implementação}

\subsection {Algumas decisões particulares da implementação}

  O sistema foi dividido em cinco modulos: oceano, fisica, item, grafico e colisao.
  \begin{description}  
   \item[oceano.c|h] O módulo oceano (.c e .h) cuida de toda a parte de gerenciamento do oceano e das frequencias de criação de naufragos. Tambem cuida da velocidade média deles.
   \item[fisica.c|h] O módulo física cuida da parte de movimentação dos naufragos e sorteios de direção.
   \item[item.c|h] O módulo item contem as implementações e estrutura de dados dos itens (naufragos) presentes do jogo.
   \item[grafico.c|h] O módulo gráfico cuida dos desenhos na tela.
   \item[colisao.c|h] O módulo colisão, foi feito separado do modulo física e cuidada sozinho de todas as colisões que acontecem no jogo.
  \end{description}

  Os naufragos tem velocidade mínima zero (ficam parados) e máxima a definir em cada eixo.
  Tomar cuidado com as modificações nos limites de velocidade pois eles podem gerar problemas no tratamento das colisões. O ideal é limitar a velocidade dos naufragos, a um deslocamento de no maximo o tamanho do seu raio. \\

  A politíca de detecção e tratamento de colisão, é baseada na idéia de que devemos começar resolvendo as colisões mais próximas primeiro (colisão prioritária). Uma vez que essa colisão foi resolvida, devemos atualizar a estrutura de dados que gerencia os elementos que colidem e buscar a nova colisão mais próxima dentre todos os elementos. Não são tratadas multiplas colisões ocorrendo no mesmo ponto. As colisões multiplas em um mesmo ponto são tratadas de par em par. Aparentemente estas idéias estão funcionando sem apresentar problemas (ex: travamento do jogo). \\

\subsection{Testes}

Foram feitos dois tipos de testes:

\begin{description}

\item[teste1.c] \hfill \\
       esse teste verifica se as rotinas polarParaEuclidiano e euclidianoParaPolar funcionam de acordo com o esperado. Pode-se construir um executável através de:\\
     \begin{verbatim}
	        make teste1
	        ./teste1
     \end{verbatim}

\item[teste2.c] \hfill \\
       esse teste verifica se as funcoes de distribuicao gaussiana sorteiam um numero de acordo com a frequencia esperada.
     \begin{verbatim}
	        make teste2
	        ./teste2
     \end{verbatim}

\section{Conclusões}

\end{document}
